package org.bb.io.streamReader;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;

public class TestDriver {

	public static void main(String[] args) {
		test02();
	}

	/**
	 * 具有缓存功能的字符流
	 */
	private static void test02() {
		try {
			// 创建一个字符流输入对象
			BufferedReader isr = new BufferedReader(new InputStreamReader(
					new FileInputStream("D:\\mytemp\\zb201807\\myFiles2\\ClassMaster.java"), "utf-8"));
			// 创建一个字符的输出流
			BufferedWriter osr = new BufferedWriter(new OutputStreamWriter(
					new FileOutputStream("D:\\mytemp\\zb201807\\myFiles2\\ClassMaster_out3.java", false), "utf-8"));
			// 读取一行
			String strLine = isr.readLine();
			while (strLine != null) {
				// 进行处理，交给输出流写出到另外一个文件
				osr.write(strLine);
				// 行末写出一个换行符
				osr.newLine();
				// 继续读取
				strLine = isr.readLine();
			}
			// 清空输出流
			osr.flush();
			// 关闭资源
			isr.close();
			osr.close();
			System.out.println("字符流操作完成");
		} catch (Exception e) {
			// 字符流处理异常
			System.out.println("字符流处理异常：" + e.getMessage());
		}
	}

	/**
	 * 字符流
	 */
	private static void test01() {
		try {
			// 创建一个字符流输入对象
			Reader isr = new InputStreamReader(new FileInputStream("D:\\mytemp\\zb201807\\myFiles2\\ClassMaster.java"),
					"utf-8");
			// 创建一个字符的输出流
			Writer osr = new OutputStreamWriter(
					new FileOutputStream("D:\\mytemp\\zb201807\\myFiles2\\ClassMaster_out1.java", true), "utf-8");
			// 创建一个读取用的字符数组
			char[] ch = new char[1024];
			// 将输入流读取到字符数组中
			int len = isr.read(ch);
			while (len > 0) {
				// 进行处理，交给输出流写出到另外一个文件
				osr.write(ch, 0, len);
				// 继续读取
				len = isr.read(ch);
			}
			// 清空输出流
			osr.flush();
			// 关闭资源
			isr.close();
			osr.close();
			System.out.println("字符流操作完成");
		} catch (Exception e) {
			// 字符流处理异常
			System.out.println("字符流处理异常：" + e.getMessage());
		}
	}

}
